#ifndef __LED_H
#define __LED_H

#include "stm32f10x.h"

// LED????
#define LED_RED_PIN         GPIO_PIN_0
#define LED_RED_GPIO_PORT   GPIOB
#define LED_RED_GPIO_CLK_ENABLE()  __HAL_RCC_GPIOB_CLK_ENABLE()

#define LED_GREEN_PIN       GPIO_PIN_1
#define LED_GREEN_GPIO_PORT GPIOB
#define LED_GREEN_GPIO_CLK_ENABLE()  __HAL_RCC_GPIOB_CLK_ENABLE()

#define LED_BLUE_PIN        GPIO_PIN_13
#define LED_BLUE_GPIO_PORT  GPIOC
#define LED_BLUE_GPIO_CLK_ENABLE()   __HAL_RCC_GPIOC_CLK_ENABLE()

#define LED_YELLOW_PIN      GPIO_PIN_5
#define LED_YELLOW_GPIO_PORT GPIOB
#define LED_YELLOW_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()

// LED?????
#define LED_RED_ON      HAL_GPIO_WritePin(LED_RED_GPIO_PORT, LED_RED_PIN, GPIO_PIN_SET)
#define LED_RED_OFF     HAL_GPIO_WritePin(LED_RED_GPIO_PORT, LED_RED_PIN, GPIO_PIN_RESET)
#define LED_RED_TOGGLE  HAL_GPIO_TogglePin(LED_RED_GPIO_PORT, LED_RED_PIN)

#define LED_GREEN_ON    HAL_GPIO_WritePin(LED_GREEN_GPIO_PORT, LED_GREEN_PIN, GPIO_PIN_SET)
#define LED_GREEN_OFF   HAL_GPIO_WritePin(LED_GREEN_GPIO_PORT, LED_GREEN_PIN, GPIO_PIN_RESET)
#define LED_GREEN_TOGGLE HAL_GPIO_TogglePin(LED_GREEN_GPIO_PORT, LED_GREEN_PIN)

#define LED_BLUE_ON     HAL_GPIO_WritePin(LED_BLUE_GPIO_PORT, LED_BLUE_PIN, GPIO_PIN_SET)
#define LED_BLUE_OFF    HAL_GPIO_WritePin(LED_BLUE_GPIO_PORT, LED_BLUE_PIN, GPIO_PIN_RESET)
#define LED_BLUE_TOGGLE HAL_GPIO_TogglePin(LED_BLUE_GPIO_PORT, LED_BLUE_PIN)

#define LED_YELLOW_ON   HAL_GPIO_WritePin(LED_YELLOW_GPIO_PORT, LED_YELLOW_PIN, GPIO_PIN_SET)
#define LED_YELLOW_OFF  HAL_GPIO_WritePin(LED_YELLOW_GPIO_PORT, LED_YELLOW_PIN, GPIO_PIN_RESET)
#define LED_YELLOW_TOGGLE HAL_GPIO_TogglePin(LED_YELLOW_GPIO_PORT, LED_YELLOW_PIN)

// ????
void LED_Init(void);
void LED_Sync_Blink(void);
void LED_Alternate_Blink(void);

#endif /* __LED_H */
    